import React, { Component } from 'react'
import { Route, Redirect } from 'react-router-dom'
import { getToken } from 'utils/storage'
export default class AuthRoute extends Component {
  render() {
    const { component: Component, ...rest } = this.props

    return (
      <Route
        {...rest}
        // props传的是路由信息 因为layout里面需要点击退出 使用到history进行退出
        render={(props) => {
          const token = getToken()
          if (token) return <Component {...props} />

          // 如果没有token重定向到login 并携带 在退出之前进入的页面的地址 当登录成功后跳转到需要进入的地址
          return (
            <Redirect
              to={{
                pathname: '/login',
                state: {
                  fromPath: props.location.pathname,
                },
              }}
            />
          )
        }}
      />
    )
  }
}
